package fr.afcepf.atod19.voyage.facade;

import java.io.Serializable;
import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Component;

import fr.afcepf.atod19.voyage.entities.Client;
import fr.afcepf.atod19.voyage.entities.Reservation;
import fr.afcepf.atod19.voyage.entities.Voyage;
import fr.afcepf.atod19.voyage.service.interfaces.IServiceReservation;
import fr.afcepf.atod19.voyage.service.interfaces.IServiceUtilisateur;
import fr.afcepf.atod19.voyage.service.interfaces.IServiceVoyage;

@Component
public class FacadeUtilisateur implements Serializable{

	private static final long serialVersionUID = 1L;
		@Inject
		IServiceUtilisateur serviceUtilisateur;
		@Inject
		IServiceReservation serviceReservation;
		@Inject
		IServiceVoyage serviceVoyage;

		public IServiceUtilisateur getServiceUtilisateur() {
			return serviceUtilisateur;
		}

		public void setServiceUtilisateur(IServiceUtilisateur serviceUtilisateur) {
			this.serviceUtilisateur = serviceUtilisateur;
		}
		
		public IServiceReservation getServiceReservation() {
			return serviceReservation;
		}

		public void setServiceReservation(IServiceReservation serviceReservation) {
			this.serviceReservation = serviceReservation;
		}
		
		public IServiceVoyage getServiceVoyage() {
			return serviceVoyage;
		}

		public void setServiceVoyage(IServiceVoyage serviceVoyage) {
			this.serviceVoyage = serviceVoyage;
		}

		public Client consulterUnUtilisateur(int numUtilisateur){
			return serviceUtilisateur.consulterUnUtilisateur(numUtilisateur);
		}

		public Client creerCompteUtilisateur(Client c) {
			return serviceUtilisateur.creerCompteUtilisateur(c);
		}
		
		public Client modifierInformationUtilisateur(Client c){
			return serviceUtilisateur.modifierInformationUtilisateur(c);
		}
		
		public List<Client> rechercherUnUtilisateur(Client c) {
			return serviceUtilisateur.rechercherUnUtilisateur(c);
		}
//		public Client consulterUnUtilisateur(Integer numClient) {
//			return serviceUtilisateur.consulterUnUtilisateur(numClient);
//		}
		
		
		public List<Voyage> rechercherVoyage(Voyage v) {
			return serviceVoyage.rechercherVoyage(v);
		}
		
		public Voyage consulterVoyage(int numVoyage) {
			return serviceVoyage.consulterUnVoyage(numVoyage);
		}
		
		public Reservation faireUneReservation(Voyage v, Client c) {
			return serviceReservation.faireUneReservation(v, c);
		}
		
}
